﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Data;
using DTO;

namespace Bussiness {
    public class PhieuThuTienService {
        public string CreateMaPhieuThu() {
            PhieuThuTienRepository repository = new PhieuThuTienRepository();
            return repository.CreateMaPhieuThu();
        }

        /// <summary>
        /// thêm 1 phiếu thu mới
        /// </summary>
        /// <param name="phieuThu"></param>
        public bool InsertNewPhieuThu(PhieuThuTienDTO phieuThu, KhachHangDTO khachHangdto, ref string message) {
            //kiem tra tham so
            //kiểm tra có được sử dụng ko
            ThamSoService tsService = new ThamSoService();
            if (tsService.IsUsed(ThamSoRows.SoTienThu)) {
                //nếu sử dụng thì tính toán điều kiện
                //lấy tham số
                //Số tiền thu không vượt quá số tiền đang nợ
                if (tsService.GetRules(ThamSoRows.SoTienThu) == 1) {
                    if (phieuThu.SoTien > khachHangdto.TienNo) {
                        message = "số tiền thu không vượt quá số tiền đang nợ";
                        return false;
                    }
                }

                //thêm vào 1 phiếu thu mới
                PhieuThuTienRepository ptRepository = new PhieuThuTienRepository();
                if (!ptRepository.InsertNewPhieuThu(phieuThu)) {
                    message = "có lỗi khi thêm phiếu thu, vui lòng thử lại";
                    return false;
                }
                //tính toán lại tiền nợ cho khách hàng
                khachHangdto.TienNo = khachHangdto.TienNo - phieuThu.SoTien;
                //update lại khách hàng
                KhachHangRepository khRepository = new KhachHangRepository();
                khRepository.UpdateKhachHang(khachHangdto);

                message = "thêm thành công";
                return true;
            }

            return true;               
        }
    }
}
